<template>
	<view>
		<live-pusher id='livePusher' ref="livePusher" class="livePusher" :url="url" mode="SD" :muted="false"
			:enable-camera="true" :auto-focus="true" :beauty="0" whiteness="0" aspect="9:16" @statechange="statechange"
			@netstatus="netstatus" @error="error"></live-pusher>
		<button class="btn" @click="start">开始推流</button>
		<button class="btn" @click="pause">暂停推流</button>
		<button class="btn" @click="resume">resume</button>
		<button class="btn" @click="stop">停止推流</button>
		<button class="btn" @click="snapshot">快照</button>
		<button class="btn" @click="startPreview">开启摄像头预览</button>
		<button class="btn" @click="stopPreview">关闭摄像头预览</button>
		<button class="btn" @click="switchCamera">切换摄像头</button>
	</view>
</template>

<script>
export default {
	data() {
		return {
			url: 'rtmp://121.40.57.89/live/livestream'
		}
	},
	props: {
		isMonitor: {
			type: Boolean,
			required: true
		}
	},
	onReady() {
		this.context = uni.createLivePusherContext("livePusher", this);
	},
	methods: {
		statechange(e) {
			console.log("statechange:" + JSON.stringify(e));
		},
		netstatus(e) {
			console.log("netstatus:" + JSON.stringify(e));
		},
		error(e) {
			console.log("error:" + JSON.stringify(e));
		},
		start() {
			this.context.start({
				success: (a) => {
					console.log("livePusher.start:" + JSON.stringify(a));
				}
			});
		},
		close() {
			this.context.close({
				success: (a) => {
					console.log("livePusher.close:" + JSON.stringify(a));
				}
			});
		},
		snapshot() {
			this.context.snapshot({
				success: (e) => {
					console.log(JSON.stringify(e));
				}
			});
		},
		resume() {
			this.context.resume({
				success: (a) => {
					console.log("livePusher.resume:" + JSON.stringify(a));
				}
			});
		},
		pause() {
			this.context.pause({
				success: (a) => {
					console.log("livePusher.pause:" + JSON.stringify(a));
				}
			});
		},
		stop() {
			this.context.stop({
				success: (a) => {
					console.log(JSON.stringify(a));
				}
			});
		},
		switchCamera() {
			this.context.switchCamera({
				success: (a) => {
					console.log("livePusher.switchCamera:" + JSON.stringify(a));
				}
			});
		},
		startPreview() {
			this.context.startPreview({
				success: (a) => {
					console.log("livePusher.startPreview:" + JSON.stringify(a));
				}
			});
		},
		stopPreview() {
			this.context.stopPreview({
				success: (a) => {
					console.log("livePusher.stopPreview:" + JSON.stringify(a));
				}
			});
		}
	}
}
</script>

<style scoped>
.livePusher {
	width: 80rpx;
	height: 60rpx;
	background-color: #eee;
}
</style>